1. Field of the Invention
The present invention relates to constructing computerized controls in general, and to multi-file controls in particular
2. Discussion of the Related Art
Controls, sometimes referred to as virtual controls, are the building blocks of the Graphic User Interface (GUI) of computerized systems. Some controls are basic and enable a single action, such as checking a checkbox, entering text in a text box, selecting a radio button, or the like, while other are more complex and provide a variety of options, such as dialogs, wizards, or the like. Complex controls are typically constructed of further basic or complex controls. For example, an “Options” dialog opened from within almost any software, such as Microsoft WinWord, made by Microsoft of Redmond, Wash., USA, may comprise a multiplicity of pages, each page presenting options relevant to a specific topic. Typically, in such controls, there is no connection between different pages, and the options within each page are selected independently from the options in other pages. All pages belonging to a specific complex control possibly share one or more controls, such as an “OK” button, a “Cancel” button, a “Save” button or the like.
The construction of each control comprises designing the user interface, as well as writing or otherwise generating code that performs the required actions when the control is used. In multiple development environments, such as Microsoft ASP.NET, Microsoft Windows Presentation Framework (WPF), Microsoft DuetML, all manufactured by Microsoft of Redmond, Wash. USA, each control is comprised of user interface and code, wherein the user interface is comprised in a single unit, and the code is also limited to being contained within a single unit, typically a single file. This constraint poses a number of problems. First, if a control is limited to a single user interface file and a single code file, then designing the control and writing the code can not be parallelized. Thus, even if the control comprises unrelated pages, the development effort on the control whether by one developer or by multiple developers working on different pages, has to be done serially, and can not be done concurrently, thus lengthening the development times.
Another problem with the single-files limitation relates to using the control. If a control is associated with a single user interface file and a single code file, the whole code related to a control is compiled or otherwise processed as a monolithic unit, and is deployed and used as such. Thus, no changes can be made to a control without recompiling and redeployment. For example, a page can not be dynamically added to or removed from a control, rather the control has to be replaced. Further, in order to develop different versions of a control, the different versions associated for example with different roles in an organization, user interface and code files have to be duplicated and compiled separately, which complicates maintenance.
There is therefore a need in the art for a method and apparatus for enabling usage of multiple pairs of user interface and code units within a single control.